Linux 信号

您所在的位置:网站首页 linux 信号量使用用例 Linux 信号

Linux 信号

2023-03-12 12:26| 来源: 网络整理| 查看: 265

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情

信号

信号是一种比较复杂的通信方式,信号产生的条件:按键、硬件异常、进程调用kill函数将信号发送给另一个进程、用户调用kill命令将信号发送给其他进程,传递的消息比较少用于通知接收进程某个时间已经发生。

不能跨局域网,而且信息量少。

消息队列

消息队列是消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。 不建议使用,现在很多成熟的消息队列。

共享内存

共享存储是最高效的IPC机制,因为不涉及进程之间的任何数据传输,但是必须辅助其他方式(比如信号量)来同步进程对共享内存的访问,否则会产生竞态条件(race condition)。共享内存适合实现进程间共享的、非常庞大的、读写操作频率很高的数据(配合信号量使用);这种方式通常适用于多进程间通信 。无须复制,快捷、信息量大是其优点。

套接字 socket

套接字可用于不同及其间的进程通信。可以跨局域网适应分布式的需求。首选socket来实现进程间通信。

常见信号

显示所有的信号:kill -l

signum信号处理方式来源2SIGINTterminate来自键盘中断 ctr+C6SIGABRTterminateassert 触发11SIGSEGVdump无效的内存引用14SIGALRMterminate定时器信号9SIGKILLterminate强迫进程终止 kill-915SIGTERMterminate进程终止(不带参数时Kill 默认发送的信号)19SIGSTOPstop停止进程执行13SIGPIPEterminate向已经关闭的管道写数据17SIGCHLDSIG_IGN子进程死亡


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3